草庐IT

c++ - std::make_pair 与 c++ 11

全部标签

c - stdout 上的 freopen_s 导致 Windows 上的 GetConsoleScreenBufferInfo 出现问题

要临时将stdout重定向到一个文件,我正在做:printf("Before");freopen_s(&stream,"test.txt","w",stdout);printf("During");freopen_s(&stream,"CONOUT$","w",stdout);printf("After");这行得通,但是这样做:CONSOLE_SCREEN_BUFFER_INFOsbi={0};GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&sbi);似乎不再有效。它返回false,GetLastError()返

c - C 中的 Windows 用户主文件夹 (MinGW)

我正在尝试将用C编写的应用程序从Linux移植到Windows。目前,我已经完成了“硬”部分的修复工作,例如missingposixfeatures之类的。应用程序现在可以在Windows上编译、链接和运行(fork()除外,稍后将替换为Windows服务代码)。我现在遇到的唯一问题是在MSYSshell中一切正常(这为我映射了unix路径)。在MSYSshell之外它不会工作,因为~不可用。我正在寻找在我的#ifdef内容中设置Windows用户主页的最佳方法。我在某处读到过关于%USERPROFILE%的内容,但这似乎不是work. 最佳答案

c - Windows 控制台 API

我在windows编程方面经验不足,想知道apiwindows使用什么在c中制作文本用户界面,就像ncurses在基于unix的系统上所做的那样。它是win32api的一部分吗?我在哪里可以获得更多信息? 最佳答案 有windowsconsoleapi.而且,你总能得到ncursesforwindows. 关于c-Windows控制台API,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questi

c - 在驱动程序和 Windows 服务之间传递数据

将数据从设备驱动程序传递到Windows服务并返回的最干净的方法是什么? 最佳答案 这通常是使用DeviceInputandOutputControl(IOCTL)实现的.您可以定义自己的私有(private)控制码,然后双向发送信息。该函数是从用户模式调用的,即您的服务。 关于c-在驱动程序和Windows服务之间传递数据,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6152

C 异常处理

我想知道如何在C中处理异常,特别是EXCEPTION_GUARD_PAGE异常。我将尝试更简要地解释一下情况:我想将一个部分/页面部分标记为PAGE_GUARD,每当程序遇到它们时我想执行一些任务,我尝试使用经典的VirtualAlloc引起异常->Write->Exception命中但我知道在C中捕获异常非常感谢您的帮助。提前致谢。 最佳答案 MSDN拥有您需要的一切:UsinganExceptionHandlerThetry-exceptStatement在这种特殊情况下,您需要这样的东西:__try{/*Codethatmay

c - GetVolumeInformation 返回的 FileSystemName 字符串的可能值是什么?

MSDNdocumentation和knowledgebasearticleGetVolumeInformation不是很具体文件系统名称字符串可以包含什么。明显的值是NTFS、CDFS和FAT32。但它也能检测到其他文件系统吗?字符串是什么?我还在某处读到,有时版本号包含在字符串中。对此有什么想法吗?我不知Prop体情况了。:(感谢您的帮助! 最佳答案 该函数可以检测以下文件系统:FAT、FAT32、NTFS、HPFS、CDFS、UDF、NWFS根据我3年前的经历,我记得在WindowsXPSP3上根本检测不到ex2或ex3。编辑

c - 如果我打算通过多个进程访问文件的多个部分,使用 CreateFileMapping 和 MapViewOfFile 的正确方法是什么?

我正在用C编写一个组件,它将被几个不同的进程使用,它们都访问同一个文件。每个进程将同时访问文件的不同部分,主要用于读取,也用于写入。我想弄清楚正确的方法是:选项A:对于每个进程,为整个文件调用一次CreateFileMapping,然后在不同部分多次使用MapViewOfFile来访问它需要的部分,这意味着如果我有10个部分我想访问,我将为整个文件调用一次CreateFileMapping,端到端,然后MapViewOfFile10次,文件的每个部分一次。或选项B:对于每个要访问的每个特定部分调用CreateFileMapping和MapViewOfFile的进程,这意味着如果我有10

.net - 从 system::String 转换为 std::string

要将system::String转换为std::string,我使用以下代码:IntPtrp=Marshal::StringToHGlobalAnsi(PORT);stringnewString=static_cast(p.ToPointer());Marshal::FreeHGlobal(p);但是,我拿到代码的地方使用IntPtrp=Marshal::StringToHGlobalAnsi(PORT);char*newString=static_cast(p.ToPointer());Marshal::FreeHGlobal(p);但是出于某种原因,如果我执行char*版本,我会在

c# - 如何检查目录是否共享?

如何在C#中检查目录是否共享?它是在Windows下用C/C++完成的吗?目录在同一台电脑上! 最佳答案 至于C#:要检查您是否可以访问(至少读取访问)当前登录用户的网络共享/unc路径,请执行IO.Directory.Exists(@"\\YourUNCShare")对于C++:Checkoutthisquestion还有thisMSDN文章,使用PathFileExists应该为C做。 关于c#-如何检查目录是否共享?,我们在StackOverflow上找到一个类似的问题:

c - 硬盘上分区的名称和数量

在windows编程中,如何查询硬盘上的分区数和每个分区的名称? 最佳答案 您可以使用DeviceIoControl功能与IOCTL_DISK_GET_DRIVE_LAYOUT_EX获取分区列表的控制代码。 关于c-硬盘上分区的名称和数量,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9721444/